package prueba.action;

import java.util.ArrayList;
import java.util.List;

import com.opensymphony.xwork2.ActionSupport;
import org.springframework.beans.factory.annotation.Autowired;

import prueba.bean.ArticuloDTO;
import prueba.service.AlmacenService;
import prueba.constans.Globales;


public class AlmacenAction extends ActionSupport{
	
	/**
	 * 
	 */
	
	private static final long serialVersionUID = 1L;
	
	@Autowired
	private AlmacenService almacenService;
	
	private List<ArticuloDTO> listarArticulo;
	
	private ArticuloDTO articuloDTO;
	
	private ArticuloDTO articuloDTOmodificar;
	
	private ArticuloDTO articuloDTOeliminar;
	
	private ArticuloDTO articuloDTOinsertar;
	
	private String mensaje;
	
	private int cantidadFilas;
	
	private int paginaMostrar;
	
	private int cantidadPaginas;

public AlmacenAction(){
	
	articuloDTO = new ArticuloDTO();
	articuloDTOinsertar = new ArticuloDTO();
	articuloDTOmodificar = new ArticuloDTO();
	articuloDTOeliminar = new ArticuloDTO();
	
	
	cantidadFilas = Globales.NUMERO_FILAS;
	paginaMostrar = 1;
	listarArticulo = new ArrayList<ArticuloDTO>();
	
	}


public String dialogRegistrar(){
	return SUCCESS;
}

public void paginacion(){
	cantidadPaginas = almacenService.numeroPaginasAlmacen(articuloDTO, cantidadFilas);
}

public void cargarIntefaz(){
	listarArticulo = almacenService.listarAlmacen(articuloDTO, paginaMostrar, cantidadFilas);
	paginacion();
}

public String abreIndexAlmacen(){
	cargarIntefaz();
	//paginacion();
	return SUCCESS;
}


public String almacenRegistrar(){
	if(articuloDTOinsertar.getCod_articulo().trim().equals("")){
		mensaje="ERROR AL INSERTAR";
		addActionError(mensaje);
	}else{
		int resultado = -1;
		resultado = almacenService.insertarAlmacen(articuloDTOinsertar);
		if(resultado>0){
			mensaje="INSERCION COMPLETA";
			addActionMessage(mensaje);
		}else{
			mensaje="INSERCION FALLIDA";
			addActionError(mensaje);
		}
		articuloDTOinsertar.setCod_articulo("");
		cargarIntefaz();
	}
	return SUCCESS;
}

public String almacenBuscar(){
	cargarIntefaz();
	return SUCCESS;
}

public String almacenEliminar(){
	int resultado=-1;
	resultado = almacenService.eliminarAlmacen(articuloDTOeliminar);
	if(resultado>0){
		mensaje="ELIMINCACION CORRECTA";
		addActionMessage(mensaje);
	}else{
		mensaje="ELIMINACION FALLIDA";
		addActionError(mensaje);
	}
	cargarIntefaz();
	return SUCCESS;
}

public String almacenModificarAbrir(){
	articuloDTOmodificar = almacenService.obtenerAlmacenID(articuloDTOmodificar);
	return SUCCESS;
}

public String almacenModificar(){
	int resultado=-1;
	resultado=almacenService.modificarAlmacen(articuloDTOmodificar);
	if(resultado>0){
		mensaje="MODIFICACION COMPLETA";
		addActionMessage(mensaje);
	}else{
		mensaje="MODIFICACION FALLIDA";
		addActionError(mensaje);
	}
	cargarIntefaz();
	return SUCCESS;
}
	
	
	
///GETTER Y SETTERS
	
	public AlmacenService getAlmacenService() {
		return almacenService;
	}

	public void setAlmacenService(AlmacenService almacenService) {
		this.almacenService = almacenService;
	}

	public List<ArticuloDTO> getListarArticulo() {
		return listarArticulo;
	}

	public void setListarArticulo(List<ArticuloDTO> listarArticulo) {
		this.listarArticulo = listarArticulo;
	}

	public ArticuloDTO getArticuloDTO() {
		return articuloDTO;
	}

	public void setArticuloDTO(ArticuloDTO articuloDTO) {
		this.articuloDTO = articuloDTO;
	}

	public ArticuloDTO getArticuloDTOmodificar() {
		return articuloDTOmodificar;
	}

	public void setArticuloDTOmodificar(ArticuloDTO articuloDTOmodificar) {
		this.articuloDTOmodificar = articuloDTOmodificar;
	}

	public ArticuloDTO getArticuloDTOeliminar() {
		return articuloDTOeliminar;
	}

	public void setArticuloDTOeliminar(ArticuloDTO articuloDTOeliminar) {
		this.articuloDTOeliminar = articuloDTOeliminar;
	}

	public ArticuloDTO getArticuloDTOinsertar() {
		return articuloDTOinsertar;
	}

	public void setArticuloDTOinsertar(ArticuloDTO articuloDTOinsertar) {
		this.articuloDTOinsertar = articuloDTOinsertar;
	}

	public String getMensaje() {
		return mensaje;
	}

	public void setMensaje(String mensaje) {
		this.mensaje = mensaje;
	}

	public int getCantidadFilas() {
		return cantidadFilas;
	}

	public void setCantidadFilas(int cantidadFilas) {
		this.cantidadFilas = cantidadFilas;
	}

	public int getPaginaMostrar() {
		return paginaMostrar;
	}

	public void setPaginaMostrar(int paginaMostrar) {
		this.paginaMostrar = paginaMostrar;
	}

	public int getCantidadPaginas() {
		return cantidadPaginas;
	}

	public void setCantidadPafinas(int cantidadPafinas) {
		this.cantidadPaginas = cantidadPafinas;
	}
	
	

}
